package parcview.interfaces;

import java.util.List;

/**
 * Der Parkplatz enth�lt ein Set der geparkten Autos und eine WaitingQueue,
 * welche alle Autos enth�lt, die darauf warten, den Parkplatz verlassen zu
 * k�nnen.
 */
public interface ParkingLotIF {
	public int getCapacity();

	/**
	 * Gibt die Anzahl der auf dem Parkplatz befindlichen Autos zur�ck.
	 * @return
	 */
	public int getNumOfCarsOnParkingLot();
	
        
        public int getNumOfParkingCars();
	/**
	 * Gibt die Warteschlange des Parkplatzes zur�ck.
	 * @return
	 */
	public WaitingQueueIF getWaitingQueue();
	
	/**
	 * Gibt die gerade auf dem Parkplatz geparkten Autos als Liste zur�ck.
	 * @return
	 */
	public List<CarIF> getParkingCars();

	/**
	 * Parkt ein Auto auf dem Parkplatz, sofern noch eine Parkl�cke frei ist.
	 * @param car
	 */
	public void parkCar(CarIF car); 
	
	/**
	 * Berechnet den n�chsten Schritt der Simulation. Es wird gepr�ft, welche Autos
	 * losfahren, um den Parkplatz zu verlassen.
	 */
	public void nextStep();
}
